寫不出可以讓人輕易讀懂的程式碼的程式設計師,不是好的程式設計師。
請隨時做好讓別人可以讀懂你程式碼的準備
就算是孤獨的工作者、不會讓別人參與你的程式碼獨行俠
也不能保證,此時看得懂的程式碼,不代表幾年後還能知道自己當時在幹什麼
雖然看起來簡單好懂的程式碼需要時間磨練
但是我們可以從基礎一步一步開始,正所謂千里知行始於足下。
雖然現在寫不出好懂的code,但是可以透過命名來讓自己的程式越來越好懂
維基也說過,命名可以提高code的易讀性、易認性、程式效率以及可維護性。
馬克吐溫曾說過:真正的大不敬是不尊重別人所信仰的的神。
各流派中只有最適合你的,沒有最好的,所以沒有必要去扁貶低其他流派去彰顯自己很厲害,
當然你也可以自成一派引領世界潮流。
不管你使用哪種命名流派,請遵循一個原則--統一,不管是使用哪一種命名法,
在同一個專案請一貫的用下去,接手別人專案也是如此,遵循那個專案的命名流派到底。
下面就簡單介紹幾個常看到的流派,可以找與自己相性的最好得來使用
其實這個命名法目前還沒有一個正式的英文名稱,Snake_case、lisp-case、kebab-case、
SCREAMING_SNAKE_CASE 等等都有人稱呼。
為了使名稱更好懂,常會使用一個以上的詞彙
而將這種複數的詞彙用底線取代空格將其鏈接起來,即是蛇形命名法
例如 日劇 求婚大作戰的 回到過去的魔法咒語 Hallelujah Chance(哈雷路亞,嗆司)
用蛇行命名法就會變成 hallelujah_chance
另外此種命名法有兩個分支
一派是全使用小寫來表示的lower snake case,即是我上面的範例
另一派是以全大寫使用的upper snake case
上面的「哈雷路亞,嗆司」則會轉成 HALLELUJAH_CHANCE
kebab case 因為樣子像羊肉串所以才會被這樣稱呼
跟蛇形命名相似不過是用 hyphens "-"來鏈接複數的詞彙。
用kebab case 「哈雷路亞,嗆司」則會轉成 hallelujah-chance
相較於蛇形命名法(snake case)或是kebab case用一個明顯的符號來鏈接詞彙
駝峰式詞彙之間不以任何符號做鏈結或是隔開,而是以大寫來表示這是不同的詞彙
「哈雷路亞,嗆司」如果用駝峰式則會轉成 hallelujahChance
chance 為了跟hallelujah做區隔 開頭的C變成了大寫
這種命名法也有兩個分支
一個是第一詞彙的第一個字母保持小寫的小駝峰式命名法(lower camel case)
另一個則是每個詞彙的第一個字母都保持大寫的大駝峰式命名法(upper camel case)
例如:HallelujahChance
匈牙利的命名跟其他歐洲體系不一樣
反而跟我們比較相近的,是一種姓氏是在前面名字在後面的命名模式
這種命名在運用程式碼即是
類型和用途+名稱
一個前綴可以很明確的指出這名稱的類型和用途
匈牙利命名也有兩個分支
前綴的字首代表資料類型的 匈牙利命名法
以及 代表變數目的或是說明他代表什麼的匈牙利應用命名法
那上面的「哈雷路亞,嗆司」如果是一個函式
function HallelujahChance() {
}
運用匈牙利命名法即會變成fnHallelujahChance
可以透過名稱就知道這是一個函式
當然也可以用其他前綴來表示不同類型 函式只是一種舉例。
上面那麼多的命名法,在JavaScript中最常見的就是,駝峰式命名法(Camel case),正確地說是小駝峰式命名法(lower camel case),常常看到很多一長串的文字像是"getElementById",把他們拆開來看就是get Element By Id,直譯就是從ID去取得一個元素,也是鯊魚目前比較推薦去使用的一個方式,但是不管何種命名法,請抱持一個最重要的原則,統一到底,才不會讓人閱讀困難。